/**
 * 
 */
package de.cbf.cam.dsa.dataprovider.talents;

import java.util.ArrayList;
import java.util.List;

import de.cbf.cam.dsa.model.base.TalentTmpl;
import de.cbf.cam.dsa.model.entities.OneAttribute;
import de.cbf.cam.dsa.model.entities.constants.TalentConstants;

/**
 * @author Nebelritter
 *
 */
public class TalentProviderSociety {
	private final int TYPE = TalentTmpl.TYPE_Talent_Society;
	
	private static TalentProviderSociety instance = new TalentProviderSociety();

	public static TalentProviderSociety getInstance() {
		return instance ;
	}

	public List<TalentTmpl> provideSocietyTalents() {
		List<TalentTmpl> resultList = new ArrayList<TalentTmpl>();
		
		resultList.add(provideBetoeren());
		resultList.add(provideEtikette());
		resultList.add(provideGassenwissen());
		resultList.add(provideLehren());
		resultList.add(provideMenschenkenntnis());
		resultList.add(provideSchauspielerei());
		resultList.add(provideSchriftlAusdruck());
		resultList.add(provideSichVerkleiden());
		resultList.add(provideUeberreden());
		resultList.add(provideUeberzeugen());			
		return resultList;
	}
	private TalentTmpl provideBetoeren() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Betoeren, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.IN,OneAttribute.CH,OneAttribute.CH});
		template.addCompensateTalent(TalentConstants.Ueberreden, -10);
		template.addCompensateTalent(TalentConstants.Ueberzeugen, -10);
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideEtikette() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Etikette, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.IN,OneAttribute.CH});
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideGassenwissen() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Gassenwissen, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.IN,OneAttribute.CH});
		template.addCompensateTalent(TalentConstants.Menschenkenntnis, -10);		
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideLehren() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Lehren, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.IN,OneAttribute.CH});		
		template.addCompensateTalent(TalentConstants.Ueberzeugen, -10);
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideMenschenkenntnis() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Menschenkenntnis, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.IN,OneAttribute.CH});		
		template.addCompensateTalent(TalentConstants.HKSeele, -10);
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideSchauspielerei() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Schauspielerei, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.MU,OneAttribute.KL,OneAttribute.CH});		
		template.addCompensateTalent(TalentConstants.Ueberreden, -10);
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideSchriftlAusdruck() {
		TalentTmpl template = new TalentTmpl(TalentConstants.SchriftlAusdruck, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.IN,OneAttribute.IN});		
		template.addCompensateTalent(TalentConstants.Ueberzeugen, -10);
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideSichVerkleiden() {
		TalentTmpl template = new TalentTmpl(TalentConstants.SichVerkleiden, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.MU,OneAttribute.CH,OneAttribute.GE});		
		template.addCompensateTalent(TalentConstants.Schauspielerei, -10);
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideUeberreden() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Ueberreden, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.MU,OneAttribute.IN,OneAttribute.CH});		
		template.addCompensateTalent(TalentConstants.Ueberzeugen, -10);
		template.setSktColumn('B');
		return template;
	}
	private TalentTmpl provideUeberzeugen() {
		TalentTmpl template = new TalentTmpl(TalentConstants.Ueberzeugen, TYPE);
		template.setAttributesToTest(new String[]{OneAttribute.KL,OneAttribute.IN,OneAttribute.CH});		
		template.addCompensateTalent(TalentConstants.Ueberreden, -10);
		template.setSktColumn('B');
		return template;
	}
}
